<!DOCTYPE HTML>
<html lang="en">
<head>
<title>Apache FreeMarker Manual - Apache FreeMarker Manual For Freemarker 2.3.30 | Docs4dev</title>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<meta name="description" content="Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="HandheldFriendly" content="true">
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta property="og:type" content="website">
<meta property="og:title" content="Apache FreeMarker Manual - Apache FreeMarker Manual For Freemarker 2.3.30">
<meta property="og:url" content="https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/">
<meta property="og:site_name" content="Docs4dev">
<meta property="og:locale" content="zh_CN">
<meta name="twitter:card" content="Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data.">
<meta name="generator" content="Docs4dev template engine">
<link rel="stylesheet" href="static/css/app.min.css">
<link rel="shortcut icon" href="https://www.docs4dev.com/static/images/favicon.ico" type="image/x-icon">
<script async="" src="static/js/js.js"></script>
<script async="" src="static/js/adsbygoogle.js" crossorigin="anonymous"></script>
<script>
    window.dataLayer = window.dataLayer || [];

    function gtag() {
      dataLayer.push(arguments);
    }

    gtag('js', new Date());
    gtag('config', 'UA-129571937-1');
  </script>
<link rel="amphtml" href="https://www.docs4dev.com/amp/docs/en/freemarker/2.3.28/reference/index.html">
<link rel="next" href="https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui.html">

<script type="application/ld+json">{"name":null,"headline":"Apache FreeMarker Manual-Apache FreeMarker Manual For Freemarker 2.3.30","inLanguage":"en-US","version":"2.3.28","image":"/static/icon/icon-freemarker.png","datePublished":"2021-05-20T12:51:02Z","dateCreated":"2021-05-20T12:51:02Z","dateModified":"2021-07-07T13:23:21Z","@context":"https://schema.org/","@type":"APIReference","abstract":"Apache FreeMarker™ is a template engine: a Java library to generate text output (HTML web pages, e-mails, configuration files, source code, etc.) based on templates and changing data."}</script>
</head>
<body>
<div class="book with-summary">
<div class="book-summary">
<div class="logo">
<a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference');" style="color: inherit;">
<img src="static/picture/icon-freemarker.png" style="width: 48px; height: 48px;" alt="Logo">
</a>
<b style="color: inherit; margin-left: 8px;">Apache FreeMarker Manual</b>
</div>
<div class="item">
<div>
<label for="version">版本</label>
<select id="version" onchange="onVersionChange(this)">
<option value="2.3.28" selected="selected">2.3.28</option>
</select>
</div>
<div style="margin-top: 8px;">
<label for="language">语言</label>
<select id="language" onchange="onLangChange(this)" value="en">
<option value="en" selected="selected">English</option>
<option value="zh">中文</option>
</select>
</div>

</div>
<div class="item menus">
<a title="Table of Contents" style="margin-right: 8px;" href="#">
<i class="fa fa-chevron-left"></i>
<span style="margin-left: 2px;">返回目录</span>
</a>
</div>
<nav role="navigation" id="navigation">
<ul class="summary">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui.html');" title="Template Author's Guide"> Template Author's Guide </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart.html');" title="Getting Started"> Getting Started </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_basics.html');" title="Template + data-model = output"> Template + data-model = output </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_datamodel.html');" title="The data-model at a glance"> The data-model at a glance </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_template.html');" title="The template at a glance"> The template at a glance </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel.html');" title="Values, Types"> Values, Types </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel_basics.html');" title="Basics"> Basics </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel_types.html');" title="The types"> The types </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template.html');" title="The Template"> The Template </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_overallstructure.html');" title="Overall structure"> Overall structure </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_directives.html');" title="Directives"> Directives </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_exp.html');" title="Expressions"> Expressions </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_valueinsertion.html');" title="Interpolations"> Interpolations </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc.html');" title="Miscellaneous"> Miscellaneous </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_userdefdir.html');" title="Defining your own directives"> Defining your own directives </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_var.html');" title="Defining variables in the template"> Defining variables in the template </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_namespace.html');" title="Namespaces"> Namespaces </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_autoescaping.html');" title="Auto-escaping and output formats"> Auto-escaping and output formats </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_whitespace.html');" title="White-space handling"> White-space handling </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_alternativesyntax.html');" title="Alternative (square bracket) syntax"> Alternative (square bracket) syntax </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui.html');" title="Programmer's Guide"> Programmer's Guide </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart.html');" title="Getting Started"> Getting Started </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_createconfiguration.html');" title="Create a configuration instance"> Create a configuration instance </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_createdatamodel.html');" title="Create a data-model"> Create a data-model </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_gettemplate.html');" title="Get the template"> Get the template </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_merge.html');" title="Merging the template with the data-model"> Merging the template with the data-model </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_all.html');" title="Putting all together"> Putting all together </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel.html');" title="The Data Model"> The Data Model </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_basics.html');" title="Basics"> Basics </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_scalar.html');" title="Scalars"> Scalars </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_parent.html');" title="Containers"> Containers </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_method.html');" title="Methods"> Methods </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_directive.html');" title="Directives"> Directives </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_node.html');" title="Node variables"> Node variables </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_objectWrapper.html');" title="Object wrappers"> Object wrappers </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config.html');" title="The Configuration"> The Configuration </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_basics.html');" title="Basics"> Basics </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_sharedvariables.html');" title="Shared variables"> Shared variables </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_settings.html');" title="Settings"> Settings </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_templateloading.html');" title="Template loading"> Template loading </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_errorhandling.html');" title="Error handling"> Error handling </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_templateconfigurations.html');" title="Template configurations"> Template configurations </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_outputformatsautoesc.html');" title="Associating output formats with templates"> Associating output formats with templates </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_custom_formats.html');" title="Custom number and date/time formats"> Custom number and date/time formats </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_incompatible_improvements.html');" title="The &quot;incompatible improvements&quot; setting"> The "incompatible improvements" setting </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc.html');" title="Miscellaneous"> Miscellaneous </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_var.html');" title="Variables, scopes"> Variables, scopes </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_charset.html');" title="Charset issues"> Charset issues </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_multithreading.html');" title="Multithreading"> Multithreading </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_beanwrapper.html');" title="Bean wrapper"> Bean wrapper </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_logging.html');" title="Logging"> Logging </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_servlet.html');" title="Using FreeMarker with servlets"> Using FreeMarker with servlets </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_secureenv.html');" title="Configuring security policy for FreeMarker"> Configuring security policy for FreeMarker </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_xml_legacy.html');" title="Legacy XML wrapper implementation"> Legacy XML wrapper implementation </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_ant.html');" title="Using FreeMarker with Ant"> Using FreeMarker with Ant </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_jythonwrapper.html');" title="Jython wrapper"> Jython wrapper </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref.html');" title="Template Language Reference"> Template Language Reference </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins.html');" title="Built-in Reference"> Built-in Reference </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_alphaidx.html');" title="Alphabetical index"> Alphabetical index </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_string.html');" title="Built-ins for strings"> Built-ins for strings </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_number.html');" title="Built-ins for numbers"> Built-ins for numbers </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_date.html');" title="Built-ins for date/time/date-time values"> Built-ins for date/time/date-time values </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_boolean.html');" title="Built-ins for booleans"> Built-ins for booleans </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_sequence.html');" title="Built-ins for sequences"> Built-ins for sequences </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_hash.html');" title="Built-ins for hashes"> Built-ins for hashes </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_node.html');" title="Built-ins for nodes (for XML)"> Built-ins for nodes (for XML) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_loop_var.html');" title="Loop variable built-ins"> Loop variable built-ins </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_type_independent.html');" title="Type independent built-ins"> Type independent built-ins </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_expert.html');" title="Seldom used and expert built-ins"> Seldom used and expert built-ins </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directives.html');" title="Directive Reference"> Directive Reference </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_alphaidx.html');" title="Alphabetical index"> Alphabetical index </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_assign.html');" title="assign"> assign </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_attempt.html');" title="attempt, recover"> attempt, recover </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_autoesc.html');" title="autoesc"> autoesc </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_compress.html');" title="compress"> compress </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_escape.html');" title="escape, noescape (deprecated)"> escape, noescape (deprecated) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_flush.html');" title="flush"> flush </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_ftl.html');" title="ftl"> ftl </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_function.html');" title="function, return"> function, return </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_global.html');" title="global"> global </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_if.html');" title="if, else, elseif"> if, else, elseif </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_import.html');" title="import"> import </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_include.html');" title="include"> include </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_list.html');" title="list, else, items, sep, break, continue"> list, else, items, sep, break, continue </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_local.html');" title="local"> local </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_macro.html');" title="macro, nested, return"> macro, nested, return </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_noautoesc.html');" title="noautoesc"> noautoesc </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_noparse.html');" title="noparse"> noparse </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_nt.html');" title="nt"> nt </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_outputformat.html');" title="outputformat"> outputformat </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_setting.html');" title="setting"> setting </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_stop.html');" title="stop"> stop </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_switch.html');" title="switch, case, default, break"> switch, case, default, break </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_t.html');" title="t, lt, rt"> t, lt, rt </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_userDefined.html');" title="User-defined directive (<@...>)"> User-defined directive (&lt;@...&gt;) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_visit.html');" title="visit, recurse, fallback"> visit, recurse, fallback </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_specvar.html');" title="Special Variable Reference"> Special Variable Reference </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_reservednames.html');" title="Reserved names in FTL"> Reserved names in FTL </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_deprecated.html');" title="Deprecated FTL constructs"> Deprecated FTL constructs </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_directive.html');" title="List of deprecated directives"> List of deprecated directives </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_builtin.html');" title="List of deprecated built-ins"> List of deprecated built-ins </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_oldmacro.html');" title="Old-style macro and call directives"> Old-style macro and call directives </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_transform.html');" title="Transform directive"> Transform directive </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_oldsyntax.html');" title="Old FTL syntax"> Old FTL syntax </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_numerical_interpolation.html');" title="#{...}: Numerical interpolation"> #{...}: Numerical interpolation </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui.html');" title="XML Processing Guide"> XML Processing Guide </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_preface.html');" title="Preface"> Preface </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose.html');" title="Exposing XML documents"> Exposing XML documents </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose_dom.html');" title="The DOM tree"> The DOM tree </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose_put.html');" title="Putting the XML into the data-model"> Putting the XML into the data-model </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative.html');" title="Imperative XML processing"> Imperative XML processing </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative_learn.html');" title="Basics"> Basics </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative_formal.html');" title="Details"> Details </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative.html');" title="Declarative XML processing"> Declarative XML processing </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative_basics.html');" title="Basics"> Basics </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative_details.html');" title="Details"> Details </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app.html');" title="Appendixes"> Appendixes </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_faq.html');" title="FAQ"> FAQ </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_versions.html');" title="Version history"> Version history </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_30.html');" title="2.3.30"> 2.3.30 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_29.html');" title="2.3.29"> 2.3.29 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_28.html');" title="2.3.28"> 2.3.28 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_27.html');" title="2.3.27 (incubating at Apache)"> 2.3.27 (incubating at Apache) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_26.html');" title="2.3.26 (incubating at Apache)"> 2.3.26 (incubating at Apache) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_25.html');" title="2.3.25 (incubating at Apache)"> 2.3.25 (incubating at Apache) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_24.html');" title="2.3.24 (incubating at Apache)"> 2.3.24 (incubating at Apache) </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_23.html');" title="2.3.23"> 2.3.23 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_22.html');" title="2.3.22"> 2.3.22 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_21.html');" title="2.3.21"> 2.3.21 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_20.html');" title="2.3.20"> 2.3.20 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_19.html');" title="2.3.19"> 2.3.19 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_18.html');" title="2.3.18"> 2.3.18 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_17.html');" title="2.3.17"> 2.3.17 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_16.html');" title="2.3.16"> 2.3.16 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_15.html');" title="2.3.15"> 2.3.15 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_14.html');" title="2.3.14"> 2.3.14 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_13.html');" title="2.3.13"> 2.3.13 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_12.html');" title="2.3.12"> 2.3.12 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_11.html');" title="2.3.11"> 2.3.11 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_10.html');" title="2.3.10"> 2.3.10 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_9.html');" title="2.3.9"> 2.3.9 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_8.html');" title="2.3.8"> 2.3.8 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_7.html');" title="2.3.7"> 2.3.7 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_7rc1.html');" title="2.3.7 RC1"> 2.3.7 RC1 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_6.html');" title="2.3.6"> 2.3.6 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_5.html');" title="2.3.5"> 2.3.5 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_4.html');" title="2.3.4"> 2.3.4 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_3.html');" title="2.3.3"> 2.3.3 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_2.html');" title="2.3.2"> 2.3.2 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_1.html');" title="2.3.1"> 2.3.1 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3.html');" title="2.3"> 2.3 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_8.html');" title="2.2.8"> 2.2.8 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_7.html');" title="2.2.7"> 2.2.7 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_6.html');" title="2.2.6"> 2.2.6 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_5.html');" title="2.2.5"> 2.2.5 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_4.html');" title="2.2.4"> 2.2.4 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_3.html');" title="2.2.3"> 2.2.3 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_2.html');" title="2.2.2"> 2.2.2 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_1.html');" title="2.2.1"> 2.2.1 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2.html');" title="2.2"> 2.2 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_5.html');" title="2.1.5"> 2.1.5 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_4.html');" title="2.1.4"> 2.1.4 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_3.html');" title="2.1.3"> 2.1.3 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_2.html');" title="2.1.2"> 2.1.2 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_1.html');" title="2.1.1"> 2.1.1 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1.html');" title="2.1"> 2.1 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_01.html');" title="2.01"> 2.01 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0.html');" title="2.0"> 2.0 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC3.html');" title="2.0 RC3"> 2.0 RC3 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC2.html');" title="2.0 RC2"> 2.0 RC2 </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC1.html');" title="2.0 RC1"> 2.0 RC1 </a> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_install.html');" title="Installing FreeMarker"> Installing FreeMarker </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_legal.html');" title="Legal"> Legal </a>
<ul class="articles">
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_license.html');" title="License"> License </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_eccn.html');" title="Export Control"> Export Control </a> </li>
</ul> </li>
</ul> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/gloss.html');" title="Glossary"> Glossary </a> </li>
<li class="chapter"> <a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/alphaidx.html');" title="Alphabetical Index"> Alphabetical Index </a> </li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<header class="book-header">
<div class="dropdown pull-right js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-globe"></i>
</a>
<div class="dropdown-menu dropdown-left">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('zh_CN')">中文</button>
</div>
<div class="buttons">
<button class="button size-1" onclick="changeLang('en_US')">English</button>
</div>
</div>
</div>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign up" href="register.html">
<i class="fa fa-sign-in"></i> <span>注册</span>
</a>
<a class="btn pull-right js-toolbar-action non-mobile" aria-label="Sign in" href="register.html">
<i class="fa fa-sign-in"></i>
<span>登录</span>
</a>
<a class="btn pull-left js-toolbar-action btn-summary" href="#"><i class="fa fa-align-justify"></i></a>
<div class="dropdown pull-left font-settings js-toolbar-action">
<a class="btn toggle-dropdown" aria-label="Font Settings" href="#">
<i class="fa fa-font"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<button class="button size-2 font-reduce">A</button>
<button class="button size-2 font-enlarge">A</button>
</div>
<div class="buttons">
<button class="button size-2 family-serif">Serif</button>
<button class="button size-2 family-sans">Sans</button>
</div>
<div class="buttons">
<button class="button size-3 theme-white">White</button>
<button class="button size-3 theme-sepia">Sepia</button>
<button class="button size-3 theme-night">Night</button>
</div>
</div>
</div>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Home" href="en.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
<a class="btn pull-left js-toolbar-action non-mobile" aria-label="Tools" href="index37.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
<div class="dropdown pull-left js-toolbar-action mobile">
<a class="btn toggle-dropdown" aria-label="Language" href="#">
<i class="fa fa-chevron-down"></i>
</a>
<div class="dropdown-menu dropdown-right">
<div class="dropdown-caret"><span class="caret-outer"></span><span class="caret-inner"></span></div>
<div class="buttons">
<a class="button size-1" aria-label="Home" href="en.html">
<i class="fa fa-home"></i> <span>首页</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Guide" href="javascript:window.open('https://www.javadoc.org/');">
<i class="fa fa-book"></i> <span>API Docs</span>
</a>
</div>
<div class="buttons">
<a class="button size-1" aria-label="Tools" href="index37.html">
<i class="fa fa-gears"></i> <span>工具</span>
</a>
</div>
</div>
</div>
<div id="autocomplete" class="pull-right"></div>
<span id="toolbar-title"></span>
</header>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<section class="normal markdown-section">
<div id="content">
<h1>Apache FreeMarker Manual For Freemarker 2.3.30</h1>
<div><ins class="adsbygoogle" style="display:block; text-align:center;" data-ad-layout="in-article" data-ad-format="fluid" data-ad-client="ca-pub-6108808167664152" data-ad-slot="6964403648"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
<div><div class="page-title">
<div class="pagers top">
</div>
<div class="title-wrapper">
</div>
</div>
<div class="page-menu">
<div class="page-menu-title">
Table of Contents
</div>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui.html');" data-menu-target="dgui">Template Author's Guide</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart.html');" data-menu-target="dgui_quickstart">Getting Started</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_basics.html');" data-menu-target="dgui_quickstart_basics">Template + data-model = output</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_datamodel.html');" data-menu-target="dgui_quickstart_datamodel">The data-model at a glance</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_quickstart_template.html');" data-menu-target="dgui_quickstart_template">The template at a glance</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel.html');" data-menu-target="dgui_datamodel">Values, Types</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel_basics.html');" data-menu-target="dgui_datamodel_basics">Basics</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_datamodel_types.html');" data-menu-target="dgui_datamodel_types">The types</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template.html');" data-menu-target="dgui_template">The Template</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_overallstructure.html');" data-menu-target="dgui_template_overallstructure">Overall structure</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_directives.html');" data-menu-target="dgui_template_directives">Directives</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_exp.html');" data-menu-target="dgui_template_exp">Expressions</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_template_valueinsertion.html');" data-menu-target="dgui_template_valueinsertion">Interpolations</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc.html');" data-menu-target="dgui_misc">Miscellaneous</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_userdefdir.html');" data-menu-target="dgui_misc_userdefdir">Defining your own directives</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_var.html');" data-menu-target="dgui_misc_var">Defining variables in the template</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_namespace.html');" data-menu-target="dgui_misc_namespace">Namespaces</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_autoescaping.html');" data-menu-target="dgui_misc_autoescaping">Auto-escaping and output formats</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_whitespace.html');" data-menu-target="dgui_misc_whitespace">White-space handling</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui_misc_alternativesyntax.html');" data-menu-target="dgui_misc_alternativesyntax">Alternative (square bracket) syntax</a></li>
</ul></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui.html');" data-menu-target="pgui">Programmer's Guide</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart.html');" data-menu-target="pgui_quickstart">Getting Started</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_createconfiguration.html');" data-menu-target="pgui_quickstart_createconfiguration">Create a configuration instance</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_createdatamodel.html');" data-menu-target="pgui_quickstart_createdatamodel">Create a data-model</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_gettemplate.html');" data-menu-target="pgui_quickstart_gettemplate">Get the template</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_merge.html');" data-menu-target="pgui_quickstart_merge">Merging the template with the data-model</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_quickstart_all.html');" data-menu-target="pgui_quickstart_all">Putting all together</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel.html');" data-menu-target="pgui_datamodel">The Data Model</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_basics.html');" data-menu-target="pgui_datamodel_basics">Basics</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_scalar.html');" data-menu-target="pgui_datamodel_scalar">Scalars</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_parent.html');" data-menu-target="pgui_datamodel_parent">Containers</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_method.html');" data-menu-target="pgui_datamodel_method">Methods</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_directive.html');" data-menu-target="pgui_datamodel_directive">Directives</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_node.html');" data-menu-target="pgui_datamodel_node">Node variables</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_datamodel_objectWrapper.html');" data-menu-target="pgui_datamodel_objectWrapper">Object wrappers</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config.html');" data-menu-target="pgui_config">The Configuration</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_basics.html');" data-menu-target="pgui_config_basics">Basics</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_sharedvariables.html');" data-menu-target="pgui_config_sharedvariables">Shared variables</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_settings.html');" data-menu-target="pgui_config_settings">Settings</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_templateloading.html');" data-menu-target="pgui_config_templateloading">Template loading</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_errorhandling.html');" data-menu-target="pgui_config_errorhandling">Error handling</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_templateconfigurations.html');" data-menu-target="pgui_config_templateconfigurations">Template configurations</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_outputformatsautoesc.html');" data-menu-target="pgui_config_outputformatsautoesc">Associating output formats with templates</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_custom_formats.html');" data-menu-target="pgui_config_custom_formats">Custom number and date/time formats</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_config_incompatible_improvements.html');" data-menu-target="pgui_config_incompatible_improvements">The "incompatible improvements" setting</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc.html');" data-menu-target="pgui_misc">Miscellaneous</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_var.html');" data-menu-target="pgui_misc_var">Variables, scopes</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_charset.html');" data-menu-target="pgui_misc_charset">Charset issues</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_multithreading.html');" data-menu-target="pgui_misc_multithreading">Multithreading</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_beanwrapper.html');" data-menu-target="pgui_misc_beanwrapper">Bean wrapper</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_logging.html');" data-menu-target="pgui_misc_logging">Logging</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_servlet.html');" data-menu-target="pgui_misc_servlet">Using FreeMarker with servlets</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_secureenv.html');" data-menu-target="pgui_misc_secureenv">Configuring security policy for FreeMarker</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_xml_legacy.html');" data-menu-target="pgui_misc_xml_legacy">Legacy XML wrapper implementation</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_ant.html');" data-menu-target="pgui_misc_ant">Using FreeMarker with Ant</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/pgui_misc_jythonwrapper.html');" data-menu-target="pgui_misc_jythonwrapper">Jython wrapper</a></li>
</ul></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref.html');" data-menu-target="ref">Template Language Reference</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins.html');" data-menu-target="ref_builtins">Built-in Reference</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_alphaidx.html');" data-menu-target="ref_builtins_alphaidx">Alphabetical index</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_string.html');" data-menu-target="ref_builtins_string">Built-ins for strings</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_number.html');" data-menu-target="ref_builtins_number">Built-ins for numbers</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_date.html');" data-menu-target="ref_builtins_date">Built-ins for date/time/date-time values</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_boolean.html');" data-menu-target="ref_builtins_boolean">Built-ins for booleans</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_sequence.html');" data-menu-target="ref_builtins_sequence">Built-ins for sequences</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_hash.html');" data-menu-target="ref_builtins_hash">Built-ins for hashes</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_node.html');" data-menu-target="ref_builtins_node">Built-ins for nodes (for XML)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_loop_var.html');" data-menu-target="ref_builtins_loop_var">Loop variable built-ins</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_type_independent.html');" data-menu-target="ref_builtins_type_independent">Type independent built-ins</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_builtins_expert.html');" data-menu-target="ref_builtins_expert">Seldom used and expert built-ins</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directives.html');" data-menu-target="ref_directives">Directive Reference</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_alphaidx.html');" data-menu-target="ref_directive_alphaidx">Alphabetical index</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_assign.html');" data-menu-target="ref_directive_assign">assign</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_attempt.html');" data-menu-target="ref_directive_attempt">attempt, recover</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_autoesc.html');" data-menu-target="ref_directive_autoesc">autoesc</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_compress.html');" data-menu-target="ref_directive_compress">compress</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_escape.html');" data-menu-target="ref_directive_escape">escape, noescape (deprecated)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_flush.html');" data-menu-target="ref_directive_flush">flush</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_ftl.html');" data-menu-target="ref_directive_ftl">ftl</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_function.html');" data-menu-target="ref_directive_function">function, return</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_global.html');" data-menu-target="ref_directive_global">global</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_if.html');" data-menu-target="ref_directive_if">if, else, elseif</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_import.html');" data-menu-target="ref_directive_import">import</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_include.html');" data-menu-target="ref_directive_include">include</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_list.html');" data-menu-target="ref_directive_list">list, else, items, sep, break, continue</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_local.html');" data-menu-target="ref_directive_local">local</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_macro.html');" data-menu-target="ref_directive_macro">macro, nested, return</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_noautoesc.html');" data-menu-target="ref_directive_noautoesc">noautoesc</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_noparse.html');" data-menu-target="ref_directive_noparse">noparse</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_nt.html');" data-menu-target="ref_directive_nt">nt</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_outputformat.html');" data-menu-target="ref_directive_outputformat">outputformat</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_setting.html');" data-menu-target="ref_directive_setting">setting</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_stop.html');" data-menu-target="ref_directive_stop">stop</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_switch.html');" data-menu-target="ref_directive_switch">switch, case, default, break</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_t.html');" data-menu-target="ref_directive_t">t, lt, rt</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_userDefined.html');" data-menu-target="ref_directive_userDefined">User-defined directive (&lt;@...&gt;)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_directive_visit.html');" data-menu-target="ref_directive_visit">visit, recurse, fallback</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_specvar.html');" data-menu-target="ref_specvar">Special Variable Reference</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_reservednames.html');" data-menu-target="ref_reservednames">Reserved names in FTL</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_deprecated.html');" data-menu-target="ref_deprecated">Deprecated FTL constructs</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_directive.html');" data-menu-target="ref_depr_directive">List of deprecated directives</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_builtin.html');" data-menu-target="ref_depr_builtin">List of deprecated built-ins</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_oldmacro.html');" data-menu-target="ref_depr_oldmacro">Old-style macro and call directives</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_transform.html');" data-menu-target="ref_depr_transform">Transform directive</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_oldsyntax.html');" data-menu-target="ref_depr_oldsyntax">Old FTL syntax</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/ref_depr_numerical_interpolation.html');" data-menu-target="ref_depr_numerical_interpolation">#{...}: Numerical interpolation</a></li>
</ul></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui.html');" data-menu-target="xgui">XML Processing Guide</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_preface.html');" data-menu-target="xgui_preface">Preface</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose.html');" data-menu-target="xgui_expose">Exposing XML documents</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose_dom.html');" data-menu-target="xgui_expose_dom">The DOM tree</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_expose_put.html');" data-menu-target="xgui_expose_put">Putting the XML into the data-model</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative.html');" data-menu-target="xgui_imperative">Imperative XML processing</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative_learn.html');" data-menu-target="xgui_imperative_learn">Basics</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_imperative_formal.html');" data-menu-target="xgui_imperative_formal">Details</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative.html');" data-menu-target="xgui_declarative">Declarative XML processing</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative_basics.html');" data-menu-target="xgui_declarative_basics">Basics</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/xgui_declarative_details.html');" data-menu-target="xgui_declarative_details">Details</a></li>
</ul></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app.html');" data-menu-target="app">Appendixes</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_faq.html');" data-menu-target="app_faq">FAQ</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_versions.html');" data-menu-target="app_versions">Version history</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_30.html');" data-menu-target="versions_2_3_30">2.3.30</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_29.html');" data-menu-target="versions_2_3_29">2.3.29</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_28.html');" data-menu-target="versions_2_3_28">2.3.28</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_27.html');" data-menu-target="versions_2_3_27">2.3.27 (incubating at Apache)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_26.html');" data-menu-target="versions_2_3_26">2.3.26 (incubating at Apache)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_25.html');" data-menu-target="versions_2_3_25">2.3.25 (incubating at Apache)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_24.html');" data-menu-target="versions_2_3_24">2.3.24 (incubating at Apache)</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_23.html');" data-menu-target="versions_2_3_23">2.3.23</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_22.html');" data-menu-target="versions_2_3_22">2.3.22</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_21.html');" data-menu-target="versions_2_3_21">2.3.21</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_20.html');" data-menu-target="versions_2_3_20">2.3.20</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_19.html');" data-menu-target="versions_2_3_19">2.3.19</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_18.html');" data-menu-target="versions_2_3_18">2.3.18</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_17.html');" data-menu-target="versions_2_3_17">2.3.17</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_16.html');" data-menu-target="versions_2_3_16">2.3.16</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_15.html');" data-menu-target="versions_2_3_15">2.3.15</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_14.html');" data-menu-target="versions_2_3_14">2.3.14</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_13.html');" data-menu-target="versions_2_3_13">2.3.13</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_12.html');" data-menu-target="versions_2_3_12">2.3.12</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_11.html');" data-menu-target="versions_2_3_11">2.3.11</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_10.html');" data-menu-target="versions_2_3_10">2.3.10</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_9.html');" data-menu-target="versions_2_3_9">2.3.9</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_8.html');" data-menu-target="versions_2_3_8">2.3.8</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_7.html');" data-menu-target="versions_2_3_7">2.3.7</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_7rc1.html');" data-menu-target="versions_2_3_7rc1">2.3.7 RC1</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_6.html');" data-menu-target="versions_2_3_6">2.3.6</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_5.html');" data-menu-target="versions_2_3_5">2.3.5</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_4.html');" data-menu-target="versions_2_3_4">2.3.4</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_3.html');" data-menu-target="versions_2_3_3">2.3.3</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_2.html');" data-menu-target="versions_2_3_2">2.3.2</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3_1.html');" data-menu-target="versions_2_3_1">2.3.1</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_3.html');" data-menu-target="versions_2_3">2.3</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_8.html');" data-menu-target="versions_2_2_8">2.2.8</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_7.html');" data-menu-target="versions_2_2_7">2.2.7</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_6.html');" data-menu-target="versions_2_2_6">2.2.6</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_5.html');" data-menu-target="versions_2_2_5">2.2.5</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_4.html');" data-menu-target="versions_2_2_4">2.2.4</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_3.html');" data-menu-target="versions_2_2_3">2.2.3</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_2.html');" data-menu-target="versions_2_2_2">2.2.2</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2_1.html');" data-menu-target="versions_2_2_1">2.2.1</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_2.html');" data-menu-target="versions_2_2">2.2</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_5.html');" data-menu-target="versions_2_1_5">2.1.5</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_4.html');" data-menu-target="versions_2_1_4">2.1.4</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_3.html');" data-menu-target="versions_2_1_3">2.1.3</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_2.html');" data-menu-target="versions_2_1_2">2.1.2</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1_1.html');" data-menu-target="versions_2_1_1">2.1.1</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_1.html');" data-menu-target="versions_2_1">2.1</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_01.html');" data-menu-target="versions_2_01">2.01</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0.html');" data-menu-target="versions_2_0">2.0</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC3.html');" data-menu-target="versions_2_0RC3">2.0 RC3</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC2.html');" data-menu-target="versions_2_0RC2">2.0 RC2</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/versions_2_0RC1.html');" data-menu-target="versions_2_0RC1">2.0 RC1</a></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_install.html');" data-menu-target="app_install">Installing FreeMarker</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_legal.html');" data-menu-target="app_legal">Legal</a>
<ul>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_license.html');" data-menu-target="app_license">License</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/app_eccn.html');" data-menu-target="app_eccn">Export Control</a></li>
</ul></li>
</ul></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/gloss.html');" data-menu-target="gloss">Glossary</a></li>
<li><a class="page-menu-link" href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/alphaidx.html');" data-menu-target="alphaidx">Alphabetical Index</a></li>
</ul>
</div>
<div class="bottom-pagers-wrapper">
<div class="pagers bottom">
</div>
</div></div>
</div>
</section>
<div class="right-sidebar">
<div class="affix"><ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6108808167664152" data-ad-slot="3102929424" data-ad-format="auto" data-full-width-responsive="true"></ins>
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
</div>
</div>
<div class="ft">
<a href="#toolbar-title" id="anchorNavigationExGoTop"><i class="fa fa-arrow-up"></i></a>
<footer class="footer">
<div class="footer__container--normal">
<img alt="扫码关注公众号" title="扫码关注公众号" src="static/picture/qr-code.png" width="170" height="170">
<div class="footer__description--normal">
<p class="paragraph footer__author--normal">Docs4dev<sup class="super">&#xAE;</sup>
</p>
<p class="paragraph footer__quote&#45;&#45;normal">
如果你在使用过程中遇到任何问题，可以在 <a href="javascript:window.open('https://github.com/docs4dev/docs4dev-issues');" target="_blank" rel="noopener noreferrer">这里<i class="fa fa-external-link"></i></a> 提issue。
</p>
<div class="footer__main--normal">
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
<a href="javascript:window.open('https://beian.miit.gov.cn/');">
蜀ICP备14021783号-6
</a>
</p>
<p class="paragraph footer__main__paragraph--normal copyright" style="color: #666 !important;">
Copyright &#xA9; Docs4dev all
right reserved, powered by <a href="index2.html" target="_blank">Docs4dev</a></p>
</div>
</div>
</div>
<div class="box__issues">
</div>
</footer>
</div>
</div>
</div>
<a href="javascript:window.open('https://www.docs4dev.com/docs/en/freemarker/2.3.28/reference/dgui.html');" class="navigation navigation-next navigation-unique">
<i class="fa fa-angle-right"></i>
</a>
</div>
</div>
<script>
  var hasToc = true;
  /*  var downloadable = /!*false*!/ false;
    var editable = /!*false*!/ false;
    var code = /!*"freemarker"*!/ false;
    var version = /!*"2.3.28"*!/ false;
    var type = /!*"reference"*!/ false;
    var lang = /!*"en"*!/ 'en';
    //edit link
    require(["gitbook", "jQuery"], function (gitbook, $) {
      gitbook.events.bind('start', function (e, config) {
        // Add edit toolbar to left
        var chapterId = /!*24805*!/ 0;
        if (downloadable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-download',
            text: '下载',
            onClick: function () {
              window.open('/download?code=' + code + '&version=' + version + '&type=' + type + '&lang=' + lang);
            }
          });
        }
        if (editable) {
          gitbook.toolbar.createButton({
            icon: 'fa fa-edit',
            text: '编辑此页',
            onClick: function () {
              window.open('/docs/edit?chapterId=' + chapterId + '&lang=' + lang);
            }
          });
        }
      });
    });*/
</script>
<script>
    var code = "freemarker";
    var lang = "en";
  </script>

<script src="static/js/autocomplete-js.js"></script>
<script src="static/js/app.min.js"></script>
<script src="static/js/search.min.js"></script>
</body>
</html>
